package com.bussiness.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author dninkovi
 * Type - "String"
 * Name - "String"
 */
public class Poi {
	private Long id;
	private String name;
	private Location location;
	
	private List<Poi> pois;
	
	private Map<String, String> texts;
	private Map<String, Date> dates;
	private Map<String, Integer> numbers;
	private Map<String, Boolean> booleans;
	private Map<String, Float> floats;
	private Map<String, Integer> money;
	
	public Poi() {
		super();
		texts = new HashMap<String, String>();
		dates = new HashMap<String, Date>(); 
		numbers = new HashMap<String, Integer>();
		booleans = new HashMap<String, Boolean>();
		floats = new HashMap<String, Float>();
		money = new HashMap<String, Integer>(); 
		pois = new ArrayList<Poi>();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Map<String, Integer> getNumbers() {
		return numbers;
	}

	public void setNumbers(Map<String, Integer> numbers) {
		this.numbers = numbers;
	}

	public Map<String, Float> getFloats() {
		return floats;
	}

	public void setFloats(Map<String, Float> floats) {
		this.floats = floats;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Map<String, String> getTexts() {
		return texts;
	}
	
	public void setTexts(Map<String, String> texts) {
		this.texts = texts;
	}
	
	public Map<String, Date> getDates() {
		return dates;
	}
	
	public void setDates(Map<String, Date> dates) {
		this.dates = dates;
	}
	
	public Map<String, Boolean> getBooleans() {
		return booleans;
	}
	
	public void setBooleans(Map<String, Boolean> booleans) {
		this.booleans = booleans;
	}
	
	public Map<String, Integer> getMoney() {
		return money;
	}
	
	public void setMoney(Map<String, Integer> money) {
		this.money = money;
	}
	
	public void addText(String name, String text){
		this.texts.put(name, text);
	}
	
	public void addDate(String name, Date date){
		this.dates.put(name, date);
	}
	
	public void addNumber(String name, Integer number){
		this.numbers.put(name, number);
	}
	
	public void addBoolean(String name, Boolean bool){
		this.booleans.put(name, bool);
	}
	
	public void addFloat(String name, Float number){
		this.floats.put(name, number);
	}
	
	public void addMoney(String name, Integer number){
		this.money.put(name, number);
	}
	
	public Location getLocation() {
		return location;
	}

	public void setLocation(Location location) {
		this.location = location;
	}

	public List<Poi> getPois() {
		return pois;
	}

	public void setPois(List<Poi> pois) {
		this.pois = pois;
	}

	@Override
	public String toString(){
		return "name " + name +" id: " + id + texts + dates + numbers +  booleans + floats +  money;		
	}
}
